package CtrLayer;
import ModelLayer.*;

/**
 * Write a description of class DvdCtr here.
 * 
 * @author (Frederik, Simon, Claus, Minh, Nichlas, Nikolai) 
 * @version (06-11-2014)
 */
public class DvdCtr
{
    // instance variables
    private DvdCon dCon;

    /**
     * Constructor for objects of class PersonCtr
     */
    public DvdCtr()
    {
        // initialise instance variables
        dCon = DvdCon.getInstance();
    }

    /**
     * En returmetode for Copy
     * @return en kopi udfra dets serienummer
     */
    public Copy findCopy(String serialNumber)
    {
        return dCon.findCopy(serialNumber);
    }

    /**
     * Metode til at lave ny klasse Dvd og dernæst oprette objektet Dvd
     */
    public void createDvd(String barcode, String title, String artist, String publicationDate)
    {
        Dvd d = new Dvd(barcode, title, artist, publicationDate);
        dCon.addDvd(d);
    }

    /**
     * Metode til at lave et nyt objekt copy som tilføjes en dvd
     */
    public boolean createCopy(String serialNumber, String purchaseDate, String purchasePrice, String title)
    {        
        if(findDvd(title) != null) {
            Copy c = new Copy(serialNumber, purchaseDate, purchasePrice);
            Dvd d = findDvd(title);
            d.addCopy(c);
            return true;
        }
        return false;
    }

    /**
     * Metode til at slette en copy udfra serienummeret
     */
    public void deleteCopy(String serialNumber)
    {
        dCon.deleteCopy(serialNumber);
    }

    /**
     * En returmetode for Dvd
     * @return en dvd udfra titlen
     */
    public Dvd findDvd(String title)
    {
        return dCon.findDvd(title);
    }

    /**
     * En metode til at updatere en dvds informationer
     * @param d er variablen af klassen Dvd
     * @param barcode setter barcode
     * @param title setter title
     * @param artist setter artist
     * @param publicationDate setter publicationDate
     */
    public void updateDvd(Dvd d, String barcode, String title, String artist, String publicationDate)
    {
        d.setBarcode(barcode);
        d.setTitle(title);
        d.setArtist(artist);
        d.setPublicationDate(publicationDate);
    }

    /**
     * En metode til at slette en dvd
     * @param d er værdien der skal slettes
     */
    public void deleteDvd(Dvd d)
    {
        dCon.deleteDvd(d);
    }
}
